1. Field
The invention relates to devices, methods, and systems for storing and replicating data. Specifically, the invention relates to devices, methods, and systems for dynamically sizing a target volume.
2. The Relevant Art
Data processing systems are often required to copy large amounts of data to secondary storage or another primary data store. Historically, copying entire volumes of data required that a system suspend all tasks that may access a source or a target storage volume. Suspension of the various tasks or processes to conduct the copy operation greatly reduced the performance of such systems.
Incremental backup techniques have been developed to lessen the processing burden and any stoppage time associated with data archiving operations. Incremental backup methods are typically conducted by software that monitors or detects storage volume changes at a file level. For example, an incremental backup process running on the host system may be required to scan all of the files within the file system in order to ascertain which blocks of data on the storage subsystem have changed since the last backup. To perform an incremental backup, any files that have been modified since the last backup are copied to a storage volume during an incremental backup session.
One disadvantage of scanning file changes on the host is the processing burden associated with detecting changes. However, in one prior art file system, incremental changes are inherently tracked by the log-based internal structure of the file system. FIG. 1 is a schematic diagram illustrating a log-based storage system 100 illustrating the need for the present invention. The depicted log-based storage system 100 includes buses 102, 104, 106, and 108, a host 110, a primary volume 120, a replication module 130, an incremental log 140, a storage volume 150, a read module 160, and a baseline volume 170. The storage system 100 uses log-based incremental backup techniques to replicate data stored on the primary volume 120.
The host 110 facilitates communication among the various components of the storage system 100. The host 110 communicates with the primary volume 120, the replication module 130, and the baseline volume 170 through buses 102, 104, and 106 respectively. The host 110 requests data from and sends data to the primary volume 120 via the file system 112, which translates operating system calls to operations on the primary volume 120.
During backup operations, the host 110 may also send one or more baseline images to the baseline volume 170. For example, the host may send a baseline image of the primary volume 120, corresponding to a replicated image of the primary volume 120 at a particular point in time. Subsequently, the replication module 130 may copy incremental changes made on the primary volume 120 to the storage volume 150. Together, the incremental changes and the baseline image are used during recovery operations to restore the primary volume 120 to a previous state. In addition, the incremental changes may be accessed at any time through the read module 160.
In the depicted embodiment, replication operations conducted by the replication module 130 are facilitated by the incremental log 140, which translates read and write requests to physical addresses on the storage volume 150. The incremental log 140 generally includes a lookup table or similar data structure that facilitates translating read and write requests to physical addresses. In general, the lookup table or similar data structure is a mapping of a virtual address to a block address on the storage volume 150.
One problem with prior art storage systems, such as the prior art storage system 100, is selecting a proper storage capacity for the storage volume 150. In particular, the storage capacity required for incremental changes is highly application dependent. Selecting a capacity that is too large for the incremental changes results in wasted storage space. Selecting a capacity that is too small for the incremental changes could result in replication failure, loss of data redundancy, and vulnerability to failures. In order to maintain data redundancy under a wide variety of conditions, administrators typically err on the side of reserving too much capacity, resulting in wasted storage space that could be used for other applications.
Accordingly, what is needed is a storage volume with a dynamic capacity that prevents replication operation failure and wasted storage space. In particular, what is needed are apparatus, methods, and systems for dynamically adjusting the storage capacity of a storage volume in response to increasing or decreasing storage space requirements.